package com.canaan.business.mapper.basic;

import com.canaan.business.domain.basic.WmsProductBom;
import com.canaan.business.domain.vo.WmsProductBomExportVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 物料BOM管理Mapper接口
 *
 * @author ruoyi
 * @date 2023-01-28
 */
public interface WmsProductBomMapper
{
    /**
     * 查询物料BOM管理
     *
     * @param id 物料BOM管理主键
     * @return 物料BOM管理
     */
    public WmsProductBom selectWmsProductBomById(Long id);

    /**
     * 查询物料BOM管理列表
     *
     * @param wmsProductBom 物料BOM管理
     * @return 物料BOM管理集合
     */
    public List<WmsProductBom> selectWmsProductBomList(WmsProductBom wmsProductBom);

    /**
     * 新增物料BOM管理
     *
     * @param wmsProductBom 物料BOM管理
     * @return 结果
     */
    public int insertWmsProductBom(WmsProductBom wmsProductBom);

    /**
     * 修改物料BOM管理
     *
     * @param wmsProductBom 物料BOM管理
     * @return 结果
     */
    public int updateWmsProductBom(WmsProductBom wmsProductBom);

    /**
     * 删除物料BOM管理
     *
     * @param id 物料BOM管理主键
     * @return 结果
     */
    public int deleteWmsProductBomById(Long id);

    /**
     * 根据BOM NO删除物料BOM明细
     *
     * @param nos 物料BOM管理NO集合
     * @return 结果
     */
    int removeBomItemByBomNos(String[] nos);

    /**
     * 批量删除物料BOM管理
     *
     * @param nos 需要删除的数据NO集合
     * @return 结果
     */
    int deleteWmsProductBomByNos(String[] nos);

    /**
     * 校验是否存在重复的物料BOM
     *
     * @param productNo 产品编号
     * @param bomVersion BOM版本
     * @return 数量
     */
    Integer checkBomNum(@Param("productNo") String productNo,@Param("bomType") String bomType,@Param("bomVersion")String bomVersion,@Param("id")Long id);

    /**
     * 批量新增
     *
     * @param list BOM列表
     * @return 结果
     */
    int batchSave(@Param("list")List<WmsProductBom> list);

    /**
     * 导出查询
     *
     * @param wmsProductBom 查询参数
     * @return 结果
     */
    List<WmsProductBomExportVo> exportList(WmsProductBom wmsProductBom);

}
